package com.device.grant.dao.impl;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.stereotype.Repository;

import com.device.grant.dao.BaseDao;
import com.device.grant.dao.IDeviceDao;
import com.device.grant.pojo.IDevice;
import com.device.grant.utils.ColumnCompator;
import com.device.grant.utils.SQLUtils2;

@Repository("iDeviceDao")
public class IDeviceDaoImpl extends BaseDao<IDevice> implements IDeviceDao {

	private static final String	TABLE	= "IDevice";

	private static final String	ID		= "DeviceID";

	public List<IDevice> getIDevices(Integer page, Integer rows, Map<String, Object> params, List<String> blearParams,
			Map<String, ColumnCompator> compators, String orderBy) {
		String sql = SQLUtils2.genearlQuerySQLForCompareAndNotIn(TABLE, ID, page, rows, params, blearParams, compators, orderBy);

		return super.queryInSQL(sql);
	}

	public Integer getQueryCount(Map<String, Object> params, List<String> blearParams, Map<String, ColumnCompator> compators) {
		Map<String, Object> map = SQLUtils2.generalCountSQLForCompare(TABLE, ID, params, blearParams, compators);

		return simpleJdbcTemplate.queryForInt(map.get(SQLUtils2.SQL).toString(), (Object[]) map.get(SQLUtils2.PARAMS));
	}

	public List<IDevice> queryIDeviceByIds(Set<Integer> ids) {
		return super.queryInKeys(TABLE, ID, null, ids);
	}
}
